<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Vue 3 Hello World</title>
    <style>
      .box {
        border: 3px solid #000000;
        border-radius: 10px;
        padding: 20px;
        margin: 20px;
        width: 200px;
      }
      h3 {
        margin: 10px 0 20px 0;
      }
      p {
        margin: 20px;
      }
    </style>
  </head>
  <body>
    <!-- // 5. 创建#app容器，包含商品按钮和余额显示  -->
    <div id="app">
      <div class="box">
        <h3>小黑自动售货机</h3>
        <!-- //   6. 按钮绑定@click事件，传递对应价格给handler  -->
        <button @click="handler(5)">可乐5元</button>
        <button @click="handler(8)">咖啡10元</button>
        <button @click="handler(10)">牛奶8元</button>
      </div>
      <p>银行卡余额：{{ money }}元</p>
    </div>
 
    <!--   1. 引入Vue 3，获取createApp和ref  -->
    <script src="vue3.js"></script>
    <script>
      const { createApp, ref } = Vue;

      const app = createApp({
        // 创建Vue应用实例
        setup() {
          // 2.  创建应用，在setup中用ref定义响应式数据money（1000）
          const money = ref(1000);
          // 3. 定义handler函数接收price参数，修改money.value
          const handler = (price) => {
            // 在js中使用ref必须是`数据名.value`为固定用法
            money.value = money.value - price; // 从余额中减去商品价格
          };
          return {
            // 4.  返回money和handler供模板使用
            money,
            handler,
          };
        },
      });
    
      app.mount("#app");
    </script>
  </body>
</html>
